package cn.gbase.jiangsu.data.transfer.bean;

import java.math.BigDecimal;
import java.util.Date;

import org.nutz.dao.entity.annotation.Column;
import org.nutz.dao.entity.annotation.Id;
import org.nutz.dao.entity.annotation.Readonly;
import org.nutz.dao.entity.annotation.Table;
import org.nutz.dao.entity.annotation.View;

import cn.gbase.jiangsu.data.transfer.validation.annotation.Validations;

/**
 * 业主用户表.
 * 
 */
@Table("shop_users")
@View("shop_user_view")
public class ShopUser extends BaseDto {

	/**
	 * ID.
	 */
	@Column
	@Id
	private int id;

	/**
	 * 用户名.
	 */
	@Column
	@Validations(required = true, account = true, strLen = { 1, 32 }, errorMsg = "用户名应为1-32个字符，可以使用英文字符和数字。")
	private String username;

	/**
	 * 密码.
	 */
	@Column
	@Validations(required = true, account = true, strLen = { 1, 32 }, errorMsg = "密码应为1-32个字符，可以使用英文字符和数字。")
	private String pw;

	/**
	 * 密码确认.
	 */
	@Validations(required = true, account = true, strLen = { 1, 32 }, errorMsg = "密码确认应为1-32个字符，可以使用英文字符和数字。")
	private String pw2;

	/**
	 * 真实姓名.
	 */
	@Column("real_name")
	@Validations(required = true, strLen = { 1, 20 }, errorMsg = "真实姓名应为1-20个字符。")
	private String realName;

	/**
	 * 出生日期.
	 */
	@Column
	private Date birthday;

	/**
	 * 性别.
	 */
	@Column
	private int sex;

	/**
	 * 所属房间ID.
	 */
	@Column("room_id")
	private int roomId;

	/**
	 * 固定电话.
	 */
	@Column
	@Validations(required = false, strLen = { 1, 20 }, errorMsg = "固定电话应为1-20个字符。")
	private String telephone;

	/**
	 * Email.
	 */
	@Column
	@Validations(required = false, strLen = { 1, 100 }, errorMsg = "Email应为1-100个字符。")
	private String email;

	/**
	 * 手机.
	 */
	@Column
	private String mobile;

	/**
	 * 手机验证码.
	 */
	@Validations(required = true, strLen = { 1, 10 }, errorMsg = "请输入手机验证码。")
	private String mobileCode;

	/**
	 * QQ.
	 */
	@Column
	private String qq;

	/**
	 * 微信号.
	 */
	@Column
	private String microMsg;

	/**
	 * 家庭人数.
	 */
	@Column("family_number")
	private int familyNumber;

	/**
	 * 职业.
	 */
	@Column
	private String occupation;

	/**
	 * 兴趣爱好.
	 */
	@Column
	private String interest;

	/**
	 * 消费积分.
	 */
	@Column("shop_point")
	private int shopPoint;

	/**
	 * 用户级别.
	 */
	@Column("user_level")
	private int userLevel;

	/**
	 * 代注册标识 1：代注册 0：自己注册
	 */
	@Column("regist_rep")
	private int registRep;

	public int getRegistRep() {
		return registRep;
	}

	public void setRegistRep(int registRep) {
		this.registRep = registRep;
	}

	/**
	 * 登录次数.
	 */
	@Column("login_times")
	private int loginTimes;

	/**
	 * 上次登录时间.
	 */
	@Column("last_logintime")
	private Date lastLoginTime;

	/**
	 * 备注
	 */
	@Column
	@Validations(required = false, strLen = { 0, 255 }, errorMsg = "备注应为0-255个字符。")
	private String remark;

	/**
	 * 创建时间.
	 */
	@Column
	private Date addtime;

	/**
	 * 账户余额.
	 */
	@Column("account_balance")
	private BigDecimal accountBalance;

	/**
	 * 逻辑删除Flag.
	 */
	@Column("delete_flag")
	private int deleteFlag;

	/**
	 * 用户类型（1住宅区，2校区，3写字楼）.
	 */
	@Column("user_type")
	private int userType;

	/**
	 * 一卡通号码.
	 */
	@Column("one_card_no")
	@Validations(required = false, strLen = { 0, 50 }, errorMsg = "一卡通号码应为0-50个字符。")
	private String oneCardNo;

	/**
	 * 新密码.
	 */
	private String newPassword = null;

	/**
	 * 绑定验证码.
	 */
	@Validations(required = false, strLen = { 0, 30 }, errorMsg = "请输入注册验证码。")
	private String bindCode = null;

	/**
	 * 所属小区.
	 */
	@Column("community_id")
	@Readonly
	private int communityId;

	/**
	 * 社区名称.
	 */
	@Column("community_name")
	@Readonly
	private String communityName;

	/**
	 * 社区编码.
	 */
	@Column("community_code")
	@Readonly
	private String communityCode;

	/**
	 * 楼号.
	 */
	@Column("building_no")
	@Readonly
	private String buildingNo;

	/**
	 * 楼编码.
	 */
	@Column("building_code")
	@Readonly
	private String buildingCode;

	/**
	 * 单元号.
	 */
	@Column("unit_no")
	@Readonly
	private String unitNo;

	/**
	 * 单元编码.
	 */
	@Column("unit_code")
	@Readonly
	private String unitCode;

	/**
	 * 房间号.
	 */
	@Column("room_no")
	@Readonly
	private String roomNo;

	/**
	 * 房间编码.
	 */
	@Column("room_code")
	@Readonly
	private String roomCode;

	/**
	 * 完整的编码.
	 */
	private String fullCode;

	private int companyId;

	public int getCompanyId() {
		return companyId;
	}

	public void setCompanyId(int companyId) {
		this.companyId = companyId;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPw() {
		return pw;
	}

	public void setPw(String pw) {
		this.pw = pw;
	}

	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}

	public int getSex() {
		return sex;
	}

	public void setSex(int sex) {
		this.sex = sex;
	}

	public int getRoomId() {
		return roomId;
	}

	public void setRoomId(int roomId) {
		this.roomId = roomId;
	}

	public String getTelephone() {
		return telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}

	public int getFamilyNumber() {
		return familyNumber;
	}

	public void setFamilyNumber(int familyNumber) {
		this.familyNumber = familyNumber;
	}

	public String getOccupation() {
		return occupation;
	}

	public void setOccupation(String occupation) {
		this.occupation = occupation;
	}

	public String getInterest() {
		return interest;
	}

	public void setInterest(String interest) {
		this.interest = interest;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Date getAddtime() {
		return addtime;
	}

	public void setAddtime(Date addtime) {
		this.addtime = addtime;
	}

	public String getNewPassword() {
		return newPassword;
	}

	public void setNewPassword(String newPassword) {
		this.newPassword = newPassword;
	}

	public int getShopPoint() {
		return shopPoint;
	}

	public void setShopPoint(int shopPoint) {
		this.shopPoint = shopPoint;
	}

	public int getUserLevel() {
		return userLevel;
	}

	public void setUserLevel(int userLevel) {
		this.userLevel = userLevel;
	}

	public int getLoginTimes() {
		return loginTimes;
	}

	public void setLoginTimes(int loginTimes) {
		this.loginTimes = loginTimes;
	}

	public Date getLastLoginTime() {
		return lastLoginTime;
	}

	public void setLastLoginTime(Date lastLoginTime) {
		this.lastLoginTime = lastLoginTime;
	}

	public String getCommunityName() {
		return communityName;
	}

	public void setCommunityName(String communityName) {
		this.communityName = communityName;
	}

	public String getBuildingNo() {
		return buildingNo;
	}

	public void setBuildingNo(String buildingNo) {
		this.buildingNo = buildingNo;
	}

	public String getUnitNo() {
		return unitNo;
	}

	public void setUnitNo(String unitNo) {
		this.unitNo = unitNo;
	}

	public String getRoomNo() {
		return roomNo;
	}

	public void setRoomNo(String roomNo) {
		this.roomNo = roomNo;
	}

	public int getCommunityId() {
		return communityId;
	}

	public void setCommunityId(int communityId) {
		this.communityId = communityId;
	}

	public String getCommunityCode() {
		return communityCode;
	}

	public void setCommunityCode(String communityCode) {
		this.communityCode = communityCode;
	}

	public String getBuildingCode() {
		return buildingCode;
	}

	public void setBuildingCode(String buildingCode) {
		this.buildingCode = buildingCode;
	}

	public String getUnitCode() {
		return unitCode;
	}

	public void setUnitCode(String unitCode) {
		this.unitCode = unitCode;
	}

	public String getBindCode() {
		return bindCode;
	}

	public void setBindCode(String bindCode) {
		this.bindCode = bindCode;
	}

	public BigDecimal getAccountBalance() {
		return accountBalance;
	}

	public void setAccountBalance(BigDecimal accountBalance) {
		this.accountBalance = accountBalance;
	}

	public String getFullCode() {
		return fullCode;
	}

	public void setFullCode(String fullCode) {
		this.fullCode = fullCode;
	}

	public String getRoomCode() {
		return roomCode;
	}

	public void setRoomCode(String roomCode) {
		this.roomCode = roomCode;
	}

	public String getPw2() {
		return pw2;
	}

	public void setPw2(String pw2) {
		this.pw2 = pw2;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public int getDeleteFlag() {
		return deleteFlag;
	}

	public void setDeleteFlag(int deleteFlag) {
		this.deleteFlag = deleteFlag;
	}

	public String getMobileCode() {
		return mobileCode;
	}

	public void setMobileCode(String mobileCode) {
		this.mobileCode = mobileCode;
	}

	public int getUserType() {
		return userType;
	}

	public void setUserType(int userType) {
		this.userType = userType;
	}

	public String getOneCardNo() {
		return oneCardNo;
	}

	public void setOneCardNo(String oneCardNo) {
		this.oneCardNo = oneCardNo;
	}

	public String getQq() {
		return qq;
	}

	public void setQq(String qq) {
		this.qq = qq;
	}

	public String getMicroMsg() {
		return microMsg;
	}

	public void setMicroMsg(String microMsg) {
		this.microMsg = microMsg;
	}
}
